Networking addresses serve to identify devices and/or locations on a network and may include various classes of information, including telephone numbers, medium access control values corresponding to layer 2 of the communications protocol stack, Internet Protocol (“IP”) addresses corresponding to layer 3 of the communications protocol stack, Autonomous System Numbers (“ASN”) corresponding to layer 4 of the communications protocol stack, serial numbers, and others. Furthermore, each of the classes of networking addresses may have variations. For example, IP addresses may be of different varieties such as Internet Protocol version 4 (“IPv4”) and Internet Protocol version 6 (“IPv6”).
Networking addresses such as these must be maintained by an organization and managed appropriately. Such management must insure that no two devices, and/or locations depending upon the class of network addresses, are assigned the same networking address in a common routing area of a network. Additionally, these addresses must be managed appropriately so that networking addresses are assigned to maximize routing table efficiency. Furthermore, because networking addresses are limited commodities, if the available addresses are not appropriately managed, then addresses may be wasted by being unused while a need exists for those addresses. Thus, address uniqueness and appropriate distribution are important factors in network performance.
Conventionally, networking addresses are managed through the manual use of a text listing or a spreadsheet. The spreadsheet may consist of a column of networking addresses or blocks of addresses, with additional columns containing attributes of each address or block of addresses. The information in the cells of the text listing or spreadsheet is updated when the set of managed addresses or the attributes of the addresses have changed. Accordingly, the network administrator must study the spreadsheet to find out the attribute value(s) for a particular networking address or block of addresses. For example, a particular sheet of a spreadsheet may represent a particular network so that the networking addresses on this particular sheet are those designated for that network. Furthermore, one or more columns within a sheet may represent the status of the address block while another column represents the associated network equipment for allocated addresses.
The conventional method of manually tracking network addresses in a spreadsheet provides the administrator with no management tools other than the raw information within the spreadsheet cells. A text listing or spreadsheet may display at most a few hundred data elements in a concise format, whereas an administrator may be responsible for millions of addresses. Furthermore, views of the data are limited to the original organization of the data, for example, in order of address, which requires manual searches or additional utilities to access the information by another perspective, i.e. addresses of a particular status. For address formats such as IP that use classless interdomain routing (“CIDR”) based numbering, addresses may be administered in blocks of very specific sizes and boundaries. These limits are not obvious in the conventional spreadsheet method except perhaps to those administrators with a thorough familiarity with the address format, which makes the administration of the addresses more difficult.
The administration of networking address space may require various actions. For example, a portion of space assigned to one network and initially given a free status may later be needed for allocation to a different status, such as being given a connected status for use with particular network connections of devices. As another example, a portion of space that already has been allocated to a particular status may need to be deallocated to return to the pool of free space for the assigned network so that it can later be re-allocated. Additionally, a portion of space that has been allocated may need to be reclaimed, such as where the portion has been transferred to another network during a lend of address space.
The lack of an automated process for controlling the status of portions of the network addressing space creates many problems for the administrator. For manual tasks of administrating the networking address space, there is room for clerical errors as well as errors in judgment each time a manual activity is done. The administrator may experience difficulties in each of the activities required to administer the networking address space including allocation, deallocation, and reclaim.
For allocation, an example of a problem the administrator may face is difficulty in finding available blocks of particular sizes that may be available for allocation to a needed status for a given network. The manual task of dividing up blocks to allocate as needed often leads to the inefficient distribution of address space due to difficulty in manually judging the size and location of the block to allocate.
Additionally, there are issues associated with deallocating blocks that have been previously allocated to a particular status. The blocks must be manually located within the spreadsheet to change their status as appropriate. Furthermore, coalescing of newly deallocated blocks with adjacent free blocks may be overlooked during the manual process. The failure to coalesce smaller blocks into fewer larger ones leads to unnecessary complexity within the representation of the network space. Furthermore, it may be desirable to delay the availability of deallocated blocks for re-use. Addresses persist in the memory of network equipment after the addresses have been deactivated. Reactivation of the addresses before expiration of the old information may cause routing problems. This delay may be overlooked in the manual process. Additionally, these blocks to be deallocated may be needed for a previously initiated reclaim action such that their deallocation should be suspended, but the manual deallocation may overlook the previously initiated reclaim.
In addition to the issue noted above for deallocation, reclaims present several other difficulties for administrators. For example, reclaims may require that address space be placed into a reserved status until a reclaim action can be completed. Reclaiming large blocks of address space requires preventing re-use of smaller blocks that make up the larger blocks to be reclaimed, and keeping track of those blocks that are reserved so as to later form a large block to be reclaimed is a very difficult task to complete manually.